const { verifyToken } = require('../utils/jwt')

const authMiddleware = (req, res, next) => {
  // 从 Cookie 中获取 Token
  const token = req.cookies.token

  console.log('Token from cookie:', token)

  if (!token) {
    return res.status(401).json({ message: '未登录，请先登录' })
  }

  // 验证 Token
  const { valid, decoded, error } = verifyToken(token)
  console.log('verifyToken result:', { valid, decoded, error })

  if (!valid) {
    if (error === 'jwt expired') {
      return res.status(401).json({ message: '登录凭证已过期，请重新登录' })
    } else {
      return res.status(401).json({ message: '非法登录，请重新登录' })
    }
  }

  // 将解码后的用户信息挂载到请求对象上
  req.user = decoded
  next()
}

module.exports = authMiddleware